Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
『家族アルバム みてね』の安定リリースを支えるEKS運用 / FamilyAlbum rel...
Search
kohbis
September 11, 2023
Technology
2
1.6k
『家族アルバム みてね』の安定リリースを支えるEKS運用 / FamilyAlbum release-flow on EKS
【Chatwork × みてね勉強会】EKS&Aurora最新ノウハウでお話しした資料です
https://mixi.connpass.com/event/293351/
kohbis
September 11, 2023
Tweet
Share
More Decks by kohbis
See All by kohbis
Grafana MCP serverでなんかし隊 / Try Grafana MCP server
kohbis
0
390
Custom Prometheus Exporterによる オブザーバビリティ拡張 / Extending observability with Custom Prometheus Exporter
kohbis
1
120
データベースで見る『家族アルバム みてね』の変遷 / The Evolution of Family Album Through the Lens of Databases
kohbis
5
1.3k
SREコミュニティイベントとわたし / Me and SRE community events
kohbis
1
190
サクッと試すNew Relic Kubernetes APM auto-attach / New Relic Kubernetes APM auto-attach
kohbis
0
370
悩ましきインシデント管理 みてねのケース / Incident management is a tough
kohbis
2
770
サービス成長と共に肥大化するモノレポ、長くなるCI時間 / As services grow, monorepos get bigger and CI time gets longer
kohbis
5
3.2k
そこまで大規模じゃない EKS環境を(あまり)頑張らずに 最新化し続けたい / FamilyAlbum EKS Continuous Improvement
kohbis
2
1.8k
1,800万人が利用する『家族アルバム みてね』におけるK8s基盤のアップグレード戦略と継続的改善 / FamilyAlbum's upgrade strategy and continuous improvement for K8s infrastructure
kohbis
5
4.2k
Other Decks in Technology
See All in Technology
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
29
9.5k
[TechNight #90-1] 本当に使える?ZDMの新機能を実践検証してみた
oracle4engineer
PRO
3
140
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
150
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
380
AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions
matsuihidetoshi
1
140
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
2
470
実践! AIエージェント導入記
1mono2prod
0
140
AIエージェント最前線! Amazon Bedrock、Amazon Q、そしてMCPを使いこなそう
minorun365
PRO
10
4k
Snowflake Summit 2025 データエンジニアリング関連新機能紹介 / Snowflake Summit 2025 What's New about Data Engineering
tiltmax3
0
230
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
2
140
CI/CDとタスク共有で加速するVibe Coding
tnbe21
0
230
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
3
1.1k
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Building Adaptive Systems
keathley
43
2.6k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Become a Pro
speakerdeck
PRO
28
5.4k
GraphQLとの向き合い方2022年版
quramy
46
14k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
『家族アルバム みてね』の 安定リリースを支える EKS運用 @kohbis 【Chatwork × みてね勉強会】EKS&Aurora最新ノウハウ 2023.09.11
MIXI, Inc. About Me Kohei SUGIMOTO 株式会社MIXI 2022/04 ~『家族アルバム みてね』
SRE X/GitHub : kohbis
MIXI, Inc. Agenda 1. 『家族アルバム みてね』とは 2. 『家族アルバム みてね』の開発環境 3.
Sandbox環境 4. Dev & Stg環境 5. Prod環境 6. まとめ
MIXI, Inc. 『家族アルバム みてね』
MIXI, Inc. 子どもの写真・動画を、無料・無制限に 共有できるスマートフォンアプリです
MIXI, Inc. 家族アルバム みてね 世界中の家族の”こころのインフラ”を作る • 2015年4月リリース • 現在7言語・175の国と地域でサービスを提供 •
海外では FamilyAlbum という名称で展開中 • 2023年5月に利用者数が1,800万人を突破 ※1 • 日本国内ではママやパパの約半数となる47.1% の方がご利用 ※2 ※1 iOS・Android™ アプリ登録者数、ブラウザ版登録者数の合計 ※2「みてね」登録時に入力されたお子さまの誕生日と厚生労働省発表「人口動態統計」から算出。2022年8月時点で47.1%
MIXI, Inc. 開発環境から見る 『家族アルバム みてね』のリリースフロー
MIXI, Inc. 『家族アルバム みてね』の開発環境 いわゆる開発環境 ・開発者ごとに独立した オンライン環境 ・統一された依存関係 ・K8sのマルチコンテナ Pod
Prod環境 Stg環境 Dev環境 Sandbox環境 気軽に使える検証環境 ・AWS各サービスとの連 携 ・内部サービス間の連携 ・誰でもいつでも利用可 能 いわゆるQA環境 ・案件系のQA ・外部サービス連携 ・複数案件を並行してQA できるように2環境構成 どきどき本番環境
MIXI, Inc. 『家族アルバム みてね』のリリースフロー Prod環境 Stg環境 Dev環境 Sandbox環境 実装 動作
確認 動作 確認 QA QA依頼 軽微な修正, ライブラリのマイナーアップデートなど 開発者確認でよいもの
MIXI, Inc. リリースエンジニアリングの哲学(SRE本 第8章より) セルフサービスモデル • 開発チームがリリース頻度と時期を決定できる 高速化 • リリースを頻繁に行い、バージョン間変更を少なくする
密封ビルド • ビルドマシン上のライブラリやその他ソフトウェアに影響されない ポリシーと手順の強制 • コードの変更承認、リリースプロセス間の各手順、リリースの作成やデプロイなどレ イヤーごとに操作を行える人を指定する
MIXI, Inc. Sandbox環境
MIXI, Inc. Sandbox環境 • 利用者はあるリポジトリの “自分の名 前.yaml” にSSH公開鍵を登録するのみ • Argo
CDが検知してApplicationを作成 ◦ 開発マシンとなるPodやIngressを 自動構築 • SSHして作業可能 ◦ Remote SSH機能があるエディタ等 • 名前.xxx.mitene.us でアプリケーショ ンにアクセス可能 The Kubernetes Icons Set https://github.com/kubernetes/community/blob/master/icons/README.md
MIXI, Inc. Sandbox環境 統一されたバージョン、解決済みの依存関係 → 問題の早期発見、安定した開発環境 Helm chartsによるIaC管理 → 設定変更を一括で全体に反映
自動構築による作成/削除が容易 → 新規参画者などの開発環境の準備工数が 削減 The Kubernetes Icons Set https://github.com/kubernetes/community/blob/master/icons/README.md
MIXI, Inc. Dev & Stg環境
MIXI, Inc. Dev & Stg環境 • 利用者はあるリポジトリの “dev / stg.yaml”
のサービスブランチ名を更 新するだけ • 独自ツールがWebhookを受け取り該当 サービスのArgo CD Applicationを更新 ◦ DeploymentのImage Tagを更新 ◦ Argo CD Image Updaterに近い # dev.yaml app-a: “feature-xxx” app-b: “master” app-c: “main” …
MIXI, Inc. Dev & Stg環境 Dev環境 • Slackの専用チャンネルに「これからDev使います」と一言書けば、いつでも誰でも利 用してよい Stg環境
• QAチームが案件ごとに計画利用 • 複数案件を同時並行してQAできるように2環境構成 ◦ コスト節約のため、EKSクラスタやAuroraクラスタは共通 • (補足)家族アルバム みてねの安定リリースを支えるMagicPod活用状況
MIXI, Inc. Prod環境
MIXI, Inc. Prod環境 • 利用者はmain/masterブランチにマー ジするのみ • 独自ツールがWebhookを〜(割愛) • すべてのテストが通らなければリリー
スされない • 必ず最新のmain/masterがリリースさ れる →ビルドプロセス中に新しいコミット が積まれたら新しいコミットを優先
MIXI, Inc. Prod環境 - リリース後 • New Relicのダッシュボードにて、リリース後に問題がないか簡易モニタリング ◦ デプロイマーカーの利用
◦ 日次では毎朝SREがAWS、K8sなどの各種メトリクスをモニタリング ◦ (補足)「家族アルバム みてね」におけるオブザーバビリティの取り組み at gihyo.jp • 「小さくリリース」を実現できているため、問題が発生しロールバックした場合にも 影響は最小限 ◦ メインリポジトリのリリース頻度は1日平均5〜6回(2023/08) ◦ GitHub Dependabotによるマイナーバージョンアップデートは毎週実施
MIXI, Inc. まとめ
MIXI, Inc. まとめ • 『家族アルバム みてね』は目的ごとの環境と自動化されたリリース手段を提供 ◦ すぐに立ち上がり開発が開始できるSandbox環境 ◦ いつでも誰でも気軽に利用できるDev環境
◦ 計画的に利用するStg環境 • 柔軟かつ迅速なリリースをK8s, Argo CD + 独自アプリケーションで構築 ◦ 問題発生時も短い復旧時間 • 開発者全体での相乗効果により安定リリースを実現 ◦ 開発チームの日々の積み重ね(豊富な単体テストなど) ◦ 品質の高いQA(MagicPodの活用など)
MIXI, Inc.